export interface News {
  id: number
  title: string
  summary: string
  content: string
  author: string
  authorId: number
  category: string
  status: 'draft' | 'pending' | 'published' | 'rejected'
  publishTime?: string
  createTime: string
  updateTime: string
  views: number
  likes: number
  tags: string[]
}

export interface User {
  id: number
  username: string
  email: string
  avatar: string
  role: 'admin' | 'editor' | 'creator' | 'user'
  status: 'active' | 'inactive'
  creatorStatus?: 'pending' | 'approved' | 'rejected' | null
  createTime: string
  lastLoginTime: string
  articlesCount: number
  followersCount: number
}

export interface Comment {
  id: number
  content: string
  userId: number
  username: string
  userAvatar: string
  newsId: number
  newsTitle: string
  createTime: string
  status: 'active' | 'hidden' | 'reported'
  likes: number
  replies: number
}

export interface Report {
  id: number
  type: 'comment' | 'news' | 'user'
  targetId: number
  targetContent: string
  reporterId: number
  reporterName: string
  reason: string
  description: string
  createTime: string
  status: 'pending' | 'approved' | 'rejected'
  handleTime?: string
  handlerId?: number
  handlerName?: string
  handleResult?: string
}

export interface DashboardStats {
  totalNews: number
  todayNews: number
  totalUsers: number
  todayUsers: number
  totalComments: number
  todayComments: number
  totalReports: number
  todayReports: number
}

export interface ApiResponse<T = any> {
  success: boolean
  data: T
  message?: string
}

export interface ThemeConfig {
  name: string
  label: string
  primaryColor: string
  successColor?: string
  warningColor?: string
  errorColor?: string
  infoColor?: string
  backgroundColor?: string
  backgroundColorSecondary?: string
  textColor?: string
  textColorSecondary?: string
  borderColor?: string
  isDark?: boolean
}